From: Keir Fraser Date: Tue, 19 May 2009 13:13:20 +0000 (+0100) Subject: ocaml-xenstored: Allow to build ocaml xenstored instead of C version X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13906 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=c7367160e47a01e07fabfcb38fcb5951773b04d4;p=xen.git ocaml-xenstored: Allow to build ocaml xenstored instead of C version To use, set CONFIG_OCAML_XENSTORED=y at build time. Then the build system will automatically download the remote repo to tools/ocaml-xenstored. Signed-off-by: Alex Zeffertt --- diff --git a/.hgignore b/.hgignore index 244158a5d3..17b24787de 100644 --- a/.hgignore +++ b/.hgignore @@ -90,6 +90,7 @@ ^stubdom/gcc-.*$ ^stubdom/include$ ^stubdom/ioemu$ +^stubdom/xenstore$ ^stubdom/libxc-.*$ ^stubdom/lwip-.*$ ^stubdom/mini-os-.*$ @@ -251,6 +252,7 @@ ^tools/xm-test/tests/.*\.test$ ^tools/ioemu-remote ^tools/ioemu-dir$ +^tools/ocaml-xenstored.*$ ^xen/\.banner.*$ ^xen/BLOG$ ^xen/System.map$ diff --git a/Config.mk b/Config.mk index 214b59296f..d756a60f9c 100644 --- a/Config.mk +++ b/Config.mk @@ -125,6 +125,12 @@ QEMU_REMOTE=http://xenbits.xensource.com/git-http/qemu-xen-unstable.git # CONFIG_QEMU ?= ../qemu-xen.git CONFIG_QEMU ?= $(QEMU_REMOTE) +OCAML_XENSTORED_REPO=http://xenbits.xensource.com/ext/xen-ocaml-tools.hg + +# Build OCAML version of xenstored instead of the in-tree C version? +# This will cause $(OCAML_XENSTORED_REPO) to be cloned. +CONFIG_OCAML_XENSTORED ?= n + # Optional components XENSTAT_XENTOP ?= y VTPM_TOOLS ?= n diff --git a/tools/Makefile b/tools/Makefile index ed5f7568d2..d9208ca1b2 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -6,6 +6,7 @@ SUBDIRS-y += check SUBDIRS-y += include SUBDIRS-y += libxc SUBDIRS-y += flask +SUBDIRS-$(CONFIG_OCAML_XENSTORED) += ocaml-xenstored SUBDIRS-y += xenstore SUBDIRS-y += misc SUBDIRS-y += examples @@ -49,6 +50,7 @@ install: subdirs-install $(INSTALL_DIR) $(DESTDIR)/var/xen/dump $(INSTALL_DIR) $(DESTDIR)/var/log/xen $(INSTALL_DIR) $(DESTDIR)/var/lib/xen + $(INSTALL_DIR) $(DESTDIR)/var/lock/subsys .PHONY: clean distclean clean distclean: subdirs-clean @@ -103,3 +105,23 @@ subdir-clean-ioemu-dir: $(absolutify_xen_root); \ $(MAKE) -C ioemu-dir clean; \ fi + +ocaml-xenstored: + set -ex; \ + rm -rf ocaml-xenstored.tmp; \ + hg clone $(OCAML_XENSTORED_REPO) ocaml-xenstored.tmp; \ + if [ "$(OCAML_XENSTORED_TAG)" ]; then \ + hg -R ocaml-xenstored.tmp update -r $(OCAML_XENSTORED_TAG) ;\ + hg -R ocaml-xenstored.tmp branch mybranch ;\ + fi; \ + mv ocaml-xenstored.tmp ocaml-xenstored; \ + +subdir-all-ocaml-xenstored subdir-install-ocaml-xenstored: ocaml-xenstored + $(absolutify_xen_root); \ + $(MAKE) -C ocaml-xenstored $(patsubst subdir-%-ocaml-xenstored,%,$@); + +subdir-clean-ocaml-xenstored: + set -e; if test -d ocaml-xenstored; then \ + $(MAKE) -C ocaml-xenstored clean; \ + fi + diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile index 91b854da90..f64ba9face 100644 --- a/tools/xenstore/Makefile +++ b/tools/xenstore/Makefile @@ -26,8 +26,13 @@ LIBXENSTORE := libxenstore.a xenstore xenstore-control: CFLAGS += -static endif +ALL_TARGETS = libxenstore.so libxenstore.a clients xs_tdb_dump +ifneq ($(CONFIG_OCAML_XENSTORED),y) + ALL_TARGETS += xenstored +endif + .PHONY: all -all: libxenstore.so libxenstore.a xenstored clients xs_tdb_dump +all: $(ALL_TARGETS) .PHONY: clients clients: xenstore $(CLIENTS) xenstore-control @@ -90,12 +95,14 @@ tarball: clean .PHONY: install install: all +ifneq ($(CONFIG_OCAML_XENSTORED),y) $(INSTALL_DIR) $(DESTDIR)/var/run/xenstored $(INSTALL_DIR) $(DESTDIR)/var/lib/xenstored + $(INSTALL_PROG) xenstored $(DESTDIR)$(SBINDIR) +endif $(INSTALL_DIR) $(DESTDIR)$(BINDIR) $(INSTALL_DIR) $(DESTDIR)$(SBINDIR) $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR) - $(INSTALL_PROG) xenstored $(DESTDIR)$(SBINDIR) $(INSTALL_PROG) xenstore-control $(DESTDIR)$(BINDIR) $(INSTALL_PROG) xenstore $(DESTDIR)$(BINDIR) set -e ; for c in $(CLIENTS) ; do \